import axios from "axios";

// 使用vue-cli基于webpack构建的项目可以通过process.env获取系统变量,
// 但在vite构建的项目中需要使用 import.meta.env来获取环境变量
const instance = axios.create({
  baseURL: import.meta.env.VITE_APP_BASE_URL,
  timeout: 5000,
  headers: {
    // Authorization: localStorage.getItem("token") ?? "",
    "Content-Type": "application/json;charset=UTF-8"
  },
});

// 配置请求拦截器
instance.interceptors.request.use(
  function (request) {
    // 发送请求之前执行一些操作
    console.log("请求对象:",request)
    return request;
  },
  function (error) {
    // 请求错误是执行异常处理
    console.log("请求异常对象",error)
    return Promise.reject(error);
  }
);

// 配置响应拦截器
instance.interceptors.response.use(
  function (response) {
    // 位于 2xx 范围内的任何状态代码都会导致触发此函数
    // 对响应的数据进行处理
    console.log("响应对象",response)
    return response;
  },
  function (error) {
    // 对于非 2xx 范围内的任何状态代码都会导致触发此函数
    // 对响应异常进行处理
    console.log("响应异常对象",error)
    return Promise.reject(error);
  }
);

export default instance;
